home *** CD-ROM | disk | FTP | other *** search
/ Aminet 6 / Aminet 6 - June 1995.iso / Aminet / util / libs / ControlPad.lha / controlpad.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-03-12  |  3.0 KB  |  80 lines

  1. #ifndef CONTROLPAD_H
  2. #define CONTROLPAD_H
  3.  
  4. #include "exec/types.h"
  5.  
  6. #define ControlPadName     "controlpad.library"
  7.  
  8. // controlpad bits
  9. #define CPB_UP       0x00              // 1 = pressed
  10. #define CPB_DOWN     0x01
  11. #define CPB_LEFT     0x02
  12. #define CPB_RIGHT    0x03
  13. #define CPB_A        0x04
  14. #define CPB_B        0x05
  15. #define CPB_C        0x06
  16. #define CPB_START    0x07
  17. #define CPB_X        0x08              // (future)
  18. #define CPB_Y        0x09              // (future)
  19. #define CPB_Z        0x0A              // (future)
  20. #define CPB_MODE     0x0B              // (future)
  21. #define CPB_3BUTTON  0x0C              // Controller has 3 buttons
  22. #define CPB_6BUTTON  0x0D              // Controller has 6 buttons (future)
  23. #define CPB_INUSE    0x0E              // Controller allocated
  24. #define CPB_ERROR    0x0F              // Controller Read Error (up+down or left+right)
  25.  
  26. //controlpad flags
  27. #define CPF_UP       (1L << CPB_UP     )
  28. #define CPF_DOWN     (1L << CPB_DOWN   )
  29. #define CPF_LEFT     (1L << CPB_LEFT   )
  30. #define CPF_RIGHT    (1L << CPB_RIGHT  )
  31. #define CPF_A        (1L << CPB_A      )
  32. #define CPF_B        (1L << CPB_B      )
  33. #define CPF_C        (1L << CPB_C      )
  34. #define CPF_START    (1L << CPB_START  )
  35. #define CPF_X        (1L << CPB_X      )
  36. #define CPF_Y        (1L << CPB_Y      )
  37. #define CPF_Z        (1L << CPB_Z      )
  38. #define CPF_MODE     (1L << CPB_MODE   )
  39. #define CPF_3BUTTON  (1L << CPB_3BUTTON)
  40. #define CPF_6BUTTON  (1L << CPB_6BUTTON)
  41. #define CPF_INUSE    (1L << CPB_INUSE  )
  42. #define CPF_ERROR    (1L << CPB_ERROR  )
  43.  
  44. // unit flags
  45. #define CPU_NONE        0x00
  46. #define CPU_MOUSEPORT   0x01
  47. #define CPU_JOYPORT     0x02
  48. #define CPU_BOTHPORTS   (CPU_MOUSEPORT|CPU_JOYPORT)
  49.  
  50. typedef void *CPHANDLE;
  51.  
  52. extern struct Library *ControlPadBase;
  53.  
  54. CPHANDLE __saveds __asm cpAlloc   (register __d0 UBYTE unit);
  55. CPHANDLE __saveds __asm cpReAlloc (register __a0 CPHANDLE cph, register __d0 UBYTE unit);
  56. CPHANDLE __saveds __asm cpLock    (register __a0 CPHANDLE cph, register __d0 UBYTE unit);
  57. UBYTE    __saveds __asm cpUnLock  (register __a0 CPHANDLE cph, register __d0 UBYTE unit);
  58. void     __saveds __asm cpFree    (register __a0 CPHANDLE cph);
  59. UWORD    __saveds __asm cpGet     (register __a0 CPHANDLE cph, register __d0 UBYTE unit);
  60. UBYTE    __saveds __asm cpTest    (void);
  61. CPHANDLE __saveds __asm cpDisable (void);
  62. void     __saveds __asm cpEnable  (register __a0 CPHANDLE cph);
  63. void     __saveds __asm cpShowLogo(register __d0 int time);
  64. UBYTE    __saveds __asm cpUnit    (register __a0 CPHANDLE cph);
  65.  
  66. /* "ControlPad.library"*/
  67. #pragma libcall ControlPadBase cpAlloc 1e 001
  68. #pragma libcall ControlPadBase cpReAlloc 24 0802
  69. #pragma libcall ControlPadBase cpLock 2a 0802
  70. #pragma libcall ControlPadBase cpUnLock 30 0802
  71. #pragma libcall ControlPadBase cpFree 36 801
  72. #pragma libcall ControlPadBase cpGet 3c 0802
  73. #pragma libcall ControlPadBase cpTest 42 0
  74. /*pragma libcall ControlPadBase cpDisable 48 0 */  //private
  75. /*pragma libcall ControlPadBase cpEnable 4e 801 */ //private
  76. #pragma libcall ControlPadBase cpShowLogo 54 001
  77. #pragma libcall ControlPadBase cpUnit 5a 801
  78.  
  79. #endif // CONTROLPAD_H
  80.